package cn.fl.project.transform;

import java.util.ArrayList;
import java.util.List;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.project.dto.PrjCstBscInfoDTO;
import cn.fl.project.vo.PrjCstBscInfoVO;

 /**
 * @Description: 项目客户基础信息表 转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据 
 * @Description: VO转换数据变成DTO传递到服务端 
 * @Description: VO不能在服务端出现
 */
public class PrjCstBscInfoVOTransform {


	/**
	 * DTO 转  VO
	 * @param dto PrjCstBscInfoDTO
	 * @return PrjCstBscInfoVO
	 */
	public static PrjCstBscInfoVO toVO(PrjCstBscInfoDTO dto) {
		PrjCstBscInfoVO  vo = null;
		if (dto != null) { 
			vo = new PrjCstBscInfoVO();
			vo.setId(dto.getId());
			vo.setPrjId(dto.getPrjId());//项目ID
			vo.setCstId(dto.getCstId());//客户ID
			vo.setCstCd(dto.getCstCd());//客户编号
			vo.setCstNm(dto.getCstNm());//客户名称
			vo.setCstTypCd(dto.getCstTypCd());//客户分类（CST0001）
			vo.setCstLvlCd(dto.getCstLvlCd());//客户级别（CST0002）
			vo.setCstStsCd(dto.getCstStsCd());//客户状态（CST0003）
			vo.setCstRlCd(dto.getCstRlCd());//客户关系（CST0023）
			vo.setDsCd(dto.getDsCd());//数据来源（SYS0047）
			vo.setIndCd(dto.getIndCd());//所属行业（CST0004）
			vo.setOthIndCd(dto.getOthIndCd());//所属其他行业
			vo.setCertTypCd(dto.getCertTypCd());//注册证件类型（CST0005）
			vo.setCertNo(dto.getCertNo());//注册证件号
			vo.setCstRem(dto.getCstRem());//备注
			vo.setIsDel(dto.getIsDel());//是否删除（1：是，0：否）
			vo.setCstTypCdNm(dto.getCstTypCdNm());//分类名称
			vo.setCstLvlCdNm(dto.getCstLvlCdNm());//级别名称
			vo.setCstStsCdNm(dto.getCstStsCdNm());//状态名称
			vo.setGuarTypCd(dto.getGuarTypCd());//担保方式
			vo.setGuarAmt(dto.getGuarAmt());//担保金额
			vo.setGuarTypCdNm(dto.getGuarTypCdNm());//担保方式名称
			vo.setRlCd(dto.getRlCd());//与客户的关系
			vo.setVisRec(dto.getVisRec());//访谈记录
			vo.setCstNpBscInfoVO(PrjCstNpBscInfoVOTransform.toVO(dto.getCstNpBscInfoDTO()));
			vo.setCstCorpBscInfoVO(PrjCstCorpBscInfoVOTransform.toVO(dto.getCstCorpBscInfoDTO()));
			vo.setRlCdNm(dto.getRlCdNm());
			vo.setGuaraTypCd(dto.getGuaraTypCd());//担保属性
			vo.setCntTypCd(dto.getCntTypCd());//合同签署方式
			
			vo.setCrtTm(dto.getCrtTm());//创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
			vo.setMdfTm(dto.getMdfTm());//修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());//修改人
			vo.setCertValidEDt(dto.getCertValidEDt());//身份证到期日
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param vo PrjCstBscInfoVO
	 * @return PrjCstBscInfoDTO
	 */
	public static PrjCstBscInfoDTO toDTO(PrjCstBscInfoVO vo) {
		PrjCstBscInfoDTO dto = null;
		if (vo != null) {
			dto = new PrjCstBscInfoDTO();
			dto.setId(vo.getId());
			dto.setPrjId(vo.getPrjId());//项目ID
			dto.setCstId(vo.getCstId());//客户ID
			dto.setCstCd(vo.getCstCd());//客户编号
			dto.setCstNm(vo.getCstNm());//客户名称
			dto.setCstTypCd(vo.getCstTypCd());//客户分类（CST0001）
			dto.setCstLvlCd(vo.getCstLvlCd());//客户级别（CST0002）
			dto.setCstStsCd(vo.getCstStsCd());//客户状态（CST0003）
			dto.setCstRlCd(vo.getCstRlCd());//客户关系（CST0023）
			dto.setDsCd(vo.getDsCd());//数据来源（SYS0047）
			dto.setIndCd(vo.getIndCd());//所属行业（CST0004）
			dto.setOthIndCd(vo.getOthIndCd());//所属其他行业
			dto.setCertTypCd(vo.getCertTypCd());//注册证件类型（CST0005）
			dto.setCertNo(vo.getCertNo());//注册证件号
			dto.setCstRem(vo.getCstRem());//备注
			dto.setIsDel(vo.getIsDel());//是否删除（1：是，0：否）
			dto.setCstTypCdNm(vo.getCstTypCdNm());//分类名称
			dto.setCstLvlCdNm(vo.getCstLvlCdNm());//级别名称
			dto.setCstStsCdNm(vo.getCstStsCdNm());//状态名称
			dto.setGuarTypCd(vo.getGuarTypCd());//担保方式
			dto.setGuarAmt(vo.getGuarAmt());//担保金额
			dto.setGuarTypCdNm(vo.getGuarTypCdNm());//担保方式名称
			dto.setRlCd(vo.getRlCd());//与客户的关系
			dto.setVisRec(vo.getVisRec());//访谈记录
			dto.setCstNpBscInfoDTO(PrjCstNpBscInfoVOTransform.toDTO(vo.getCstNpBscInfoVO()));
			dto.setCstCorpBscInfoDTO(PrjCstCorpBscInfoVOTransform.toDTO(vo.getCstCorpBscInfoVO()));
			dto.setCrtTm(vo.getCrtTm());//创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());//创建人
			dto.setMdfTm(vo.getMdfTm());//修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());//修改人
			dto.setRlCdNm(vo.getRlCdNm());
			dto.setGuaraTypCd(vo.getGuaraTypCd());//担保属性
			dto.setCntTypCd(vo.getCntTypCd());//合同签署方式
			dto.setCertValidEDt(vo.getCertValidEDt());//身份证到期日
		}
		return dto;
	}

	 /**
	  * DTO集合 转 VO集合
	  * @param list List<PrjCstBscInfoDTO>
	  * @return
	  */
	public static List<PrjCstBscInfoVO> toVOList(List<PrjCstBscInfoDTO> list) {
		List<PrjCstBscInfoVO>  voList = new ArrayList<PrjCstBscInfoVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (PrjCstBscInfoDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}
	
	/**
	 * VO集合 转 DTO集合
	 * @param list List<PrjCstBscInfoVO>
	 * @return List<PrjCstBscInfoDTO>
	 */
	public static List<PrjCstBscInfoDTO> toDTOList(List<PrjCstBscInfoVO> list) {
		List<PrjCstBscInfoDTO>  dtoList = new ArrayList<PrjCstBscInfoDTO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (PrjCstBscInfoVO vo : list) {
				dtoList.add(toDTO(vo));
			}
		}
		return dtoList;
	}
}
